import router from "@/routers/index";
// import { LOGIN_URL } from "@/config";
import { RouteRecordRaw } from "vue-router";
import { ElNotification } from "element-plus";
// import { useUserStore } from "@/stores/modules/user";
// import { useAuthStore } from "@/stores/modules/auth";
import { useAuthStore } from "@/stores/";

// 引入 views 文件夹下所有 vue 文件
const modules = import.meta.glob("@/views/**/*.vue");
// console.log(11, modules);

/**
 * @description 初始化动态路由
 */
export const initRouter = async () => {
  const $auth = useAuthStore();

  // 1.获取菜单列表 && 按钮权限列表
  await $auth.getAuthMenuList();
  await $auth.getAuthButtonList();

  // 2.判断当前用户有没有菜单权限
  // if (!$auth.authMenuListGet.length) {
  //   ElNotification({
  //     title: "无权限访问",
  //     message: "当前账号无任何菜单权限，请联系系统管理员！",
  //     type: "warning",
  //     duration: 3000,
  //   });
  //   router.replace("/home");
  //   return Promise.reject("No permission");
  // }

  // 3.添加动态路由
  $auth.flatMenuListGet.forEach((item) => {
    item.children && delete item.children;
    if (item.component && typeof item.component == "string") {
      item.component = modules["/src/views" + item.component + ".vue"];
    }
    router.addRoute("layout", item as unknown as RouteRecordRaw);
  });
};
